#include <string>
#include <cctype>

/**
 * 判断目标字符串是否符合MySQL LIKE模式
 * 
 * @param target 目标字符串，若为nullptr则视为MySQL中的NULL
 * @param pattern LIKE模式字符串
 * @param escape_char 转义字符，默认为'\\'
 * @param case_insensitive 是否不区分大小写，默认true（对应ci排序规则）
 * @return 是否匹配成功
 */
bool isMysqlLike(const char* target, const std::string& pattern, 
                char escape_char = '\\', bool case_insensitive = true);

/**
 * 重载版本，接收std::string类型的目标字符串
 */
bool isMysqlLike(std::string target, std::string pattern);

